
package com.gzbsoft.sc.modules.sys.controller;
import com.gzbsoft.sc.common.annotation.SysLog;
import com.gzbsoft.sc.common.utils.R;
import com.gzbsoft.sc.modules.sys.entity.SysUser;
import com.gzbsoft.sc.modules.sys.form.PasswordForm;
import com.gzbsoft.sc.modules.sys.service.SysUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*;

import java.util.Map;
/**
 * 系统用户
 *
 * @author Mark sunlightcs@gmail.com
 */
@RestController
@RequestMapping("/sys/user")
public class SysUserController extends AbstractController {
    private final SysUserService sysUserService;
    public SysUserController(SysUserService sysUserService){
       this.sysUserService = sysUserService;
    }

    /**
     * 所有用户列表
     */
    @GetMapping("/list")
    @RequiresPermissions("sys:user:list")
    public R list(@RequestParam Map<String, Object> params) {
        return R.ok().setPage(null);
    }
    /**
     * 获取登录的用户信息
     */
    @GetMapping("/info")
    public R info() {
        return R.ok().setObj(getUser());
    }
    /**
     * 修改登录用户密码
     */
    @SysLog("修改密码")
    @PostMapping("/password")
    public R password(@RequestBody PasswordForm form) {
        return R.ok();
    }
    /**
     * 用户信息
     */
    @GetMapping("/info/{userId}")
    @RequiresPermissions("sys:user:info")
    public R info(@PathVariable("userId") Long userId) {
        return R.ok().setObj(null);
    }
    /**
     * 保存用户
     */
    @SysLog("保存用户")
    @PostMapping("/save")
    @RequiresPermissions("sys:user:save")
    public R save(@RequestBody SysUser user) {
        return R.ok();
    }
    /**
     * 修改用户
     */
    @SysLog("修改用户")
    @PostMapping("/update")
    @RequiresPermissions("sys:user:update")
    public R update(@RequestBody SysUser user) {
        return R.ok();
    }
    /**
     * 删除用户
     */
    @SysLog("删除用户")
    @PostMapping("/delete")
    @RequiresPermissions("sys:user:delete")
    public R delete(@RequestBody Long[] userIds) {
        return R.ok();
    }
    /**
     * 修改用户信息根据id
     */
    @SysLog("修改用户信息根据Id")
    @GetMapping("/updateUserName")
    @RequiresPermissions("sys:user:update")
    public R updateUserInfo(@RequestParam String username ,String id){
        sysUserService.selectUserInfo(username , id);
        System.out.println("----");
        return R.ok();
    }

    @SysLog("添加用户信息")
    @GetMapping("/insertUser")
    @RequiresPermissions("sys:user:update")
    public R addUserInfo(@RequestParam String username ,String password){
        sysUserService.addUserInfo(username ,password);
        return R.ok();
    }
}
